package com.dhcc.DRGsHosp.web.controller;

import java.util.HashMap;
import java.util.Map;

import org.openkoala.koala.commons.InvokeResult;
import org.openkoala.security.shiro.CurrentUser;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

import com.dhcc.DRGsHosp.facade.KeyDisGroupFacade;
import com.dhcc.DRGsHosp.facade.dto.IndexCalDTO;
import com.dhcc.DRGsHosp.facade.dto.KeyDisGroupDTO;
/**
 * 
 * @title		:KeyDisGroupController.java
 * @description	:重点病组分析
 * @author		:mazhaoyan
 * @date		:2016年12月15日
 * @version     :1.0
 * @copyright   :DHCC 2013-2014
 */
@Controller("drgsHospWebController24")
@RequestMapping("/keyDisGroup")
public class KeyDisGroupController {
	@Autowired
	private KeyDisGroupFacade keyDisGroupFacade;
	
	/**
	 * 
	 * @methodname    :getKeyFilterInit
	 * @description   : 获取过滤重点病组的初始化信息
	 * @param         :
	 * @author        :mazhaoyan
	 * @return        :
	 * @date          :2016年12月16日
	 */
	@ResponseBody
	@RequestMapping("/getKeyFilterInit")
	public InvokeResult getKeyFilterInit(String code){
		Map<String,Object> initMap = new HashMap<String,Object>();
		initMap.put("years",keyDisGroupFacade.getCaseYears());
		initMap.put("cfg",keyDisGroupFacade.findSizerCondition("keyGroup_"+CurrentUser.getUserAccount()+"_"+code));
		return InvokeResult.success(initMap);
	}
	/**
	 * 
	 * @methodname    :setKeyDisGroup
	 * @description   : 设置重点病组
	 * @param         :
	 * @author        :mazhaoyan
	 * @return        :
	 * @date          :2016年12月16日
	 */
	@ResponseBody
	@RequestMapping("/setKeyDisGroup")
	public InvokeResult setKeyDisGroup(KeyDisGroupDTO keyDisGroupDTO){
		keyDisGroupDTO.setRole(CurrentUser.getRoleName());
		keyDisGroupDTO.setUser(CurrentUser.getUserAccount());
		return InvokeResult.success(keyDisGroupFacade.setKeyDisGroup(keyDisGroupDTO));
	}
	
	
	/**
	 * 
	 * @methodname    :getKeyDisGroupDataMdc
	 * @description   : 获取重点病组数据 按mdc统计
	 * @param         :
	 * @author        :mazhaoyan
	 * @return        :
	 * @date          :2016年12月15日
	 */
	@ResponseBody
	@RequestMapping("/getKeyDisGroupDataMdc")
	public InvokeResult getKeyDisGroupDataMdc(String[] years,String depCode,String hospCode){
		String userCode = CurrentUser.getUserAccount();//用户code
		return InvokeResult.success(keyDisGroupFacade.getKeyDisGroupDataMdc(years,depCode,userCode,hospCode));
	}
	
	/**
	 * 
	 * @methodname    :getKeyDisGroupDataDrg
	 * @description   : 获取重点病组数据 按drg统计  MDC下DRG或者全部MDC下DRG
	 * @param         :
	 * @author        :mazhaoyan
	 * @return        :
	 * @date          :2016年12月16日
	 */
	@ResponseBody
	@RequestMapping("/getKeyDisGroupDataDrg")
	public InvokeResult getKeyDisGroupDataDrg(KeyDisGroupDTO keyDisGroupDTO){
		keyDisGroupDTO.setUser(CurrentUser.getUserAccount());
		return InvokeResult.success(keyDisGroupFacade.getKeyDisGroupDataDrg(keyDisGroupDTO));
	}
	/**
	 * 
	 * @methodname    :getExtraDisGroup
	 * @description   : 获取重点病组以外的病组 让用户筛选
	 * @param         :
	 * @author        :mazhaoyan
	 * @return        :
	 * @date          :2016年12月17日
	 */
	@ResponseBody
	@RequestMapping("/getExtraDisGroup")
	public InvokeResult getExtraDisGroup(String[] years,String depCode,String hospCode){
		String userCode = CurrentUser.getUserAccount();//用户code
		return InvokeResult.success(keyDisGroupFacade.getExtraDisGroup(years,depCode,userCode,hospCode));
	}
	
	
	
	/**
	 * 
	 * @methodname    :keyDisGroup
	 * @description   : 删除重点病组
	 * @param         :
	 * @author        :mazhaoyan
	 * @return        :
	 * @date          :2016年12月16日
	 */
	@ResponseBody
	@RequestMapping("/delKeyDisGroup")
	public InvokeResult delKeyDisGroup(String drgCode,String depCode){
		String userCode = CurrentUser.getUserAccount();//用户code
		keyDisGroupFacade.delKeyDisGroup(drgCode,depCode,userCode);
		return InvokeResult.success();
	}
	
	/**
	 * 
	 * @methodname    :addKeyDisGroup
	 * @description   : 添加重点病组
	 * @param         :
	 * @author        :mazhaoyan
	 * @return        :
	 * @date          :2016年12月17日
	 */
	@ResponseBody
	@RequestMapping("/addKeyDisGroup")
	public InvokeResult addKeyDisGroup(String drgCode,String depCode){
		keyDisGroupFacade.addKeyDisGroup(drgCode,depCode,CurrentUser.getUserAccount());
		return InvokeResult.success();
	}
	/**
	 * 
	 * @methodname    :getDisGroupCollectInfo
	 * @description   : 获取病组的汇总信息
	 * @param         :
	 * @author        :mazhaoyan
	 * @return        :
	 * @date          :2016年12月19日
	 */
	@ResponseBody
	@RequestMapping("/getDisGroupCollectInfo")
	public InvokeResult getDisGroupCollectInfo(IndexCalDTO dto){
		dto.setUserCode(CurrentUser.getUserAccount());
		return InvokeResult.success(keyDisGroupFacade.getDisGroupCollectInfo(dto));
	}
	
	/**
	 * 
	 * @methodname    :getCaseFeeDistribute
	 * @description   : 获取病例费用分布数据
	 * @param         :
	 * @author        :mazhaoyan
	 * @return        :
	 * @date          :2016年12月23日
	 */
	@ResponseBody
	@RequestMapping("/getCaseFeeDistribute")
	public InvokeResult getCaseFeeDistribute(IndexCalDTO indexCalDTO,int sliderValue){
		return InvokeResult.success(keyDisGroupFacade.getCaseFeeDistribute(indexCalDTO,sliderValue));
	}
	@ResponseBody
	@RequestMapping("/getQuadrantTrendData")
	public InvokeResult getQuadrantTrendData(IndexCalDTO dto){
		return InvokeResult.success(keyDisGroupFacade.getQuadrantTrendData(dto));
	}
	
}
